Relational databases and means for storing information in relational databases are being used to store interrelated information and to provide the means for specifying relationships. Examples include service provisioning wherein customer records are kept—relevant relationships including: “address for service”, “content subscribed to”, “service level agreement parameters”, “access window pricing scheme”, “connectivity record”, etc. While all such information can certainly be stored in a single super-record for each customer, when the service is subject to different offerings, the storage of super-records for all customers is inefficient when substantial fractions of customers either are not subject to content restrictions, are not subject service level agreements, or have flat fee access to the service. Relational database techniques provide the means for grouping the information tracked and for specifying interrelationships therebetween. The storage of address for service records, content subscription records, service level agreement parameter records, access window pricing scheme records, and connectivity records, in corresponding tables, employs primary and foreign record keys. Primary record keys are used for sorting records within the respective tables, and for retrieving records from the tables. Foreign keys are used to express the relationships between records in different tables. For example in generating bills for services, the address for service table is consulted for each customer between other things to obtain the customer identifier. Typically the customer identifier is the primary key used to store the address for service records themselves. Next, the access window pricing scheme table is searched based on the customer identifier to determine whether the subscriber has either an unlimited flat fee access, a flat fee time based access, or a time of day indexed fee schedule. Exemplary benefits of relational database storage techniques are apparent from the fact that the connectivity record does not store access records for unlimited flat fee customers.
Relational database use, as exemplary described above, is prevalent, storing much of the information found today on the World Wide Web.
It is apparent that in the above example a one-to-many relationship exists between database records in the address for service table and database records in the other tables. The first lookup in the address for service table obtaining the customer identifier (the foreign key being specified in all other tables), is known in the art as “table joining”, and in this service provisioning example, a single table joining operation is performed. However not all information can be grouped in such a way that a single level one-to-many relationship exists between the tables employed.
FIG. 1 is a schematic diagram showing exemplary manageable entities implementing exemplary communication network infrastructure.
Manageable entities include communications network nodes 106, for example data switching nodes 112. A data network equipment vendor may chose to implement an integral data network node device 122X having a data switching processor operable to switch data between a group of ports 102, while another data network equipment vendor may chose a customizable implementation of a data switching node 112Y including: a switching fabric, an equipment rack divided into shelves 122, each shelf 122 having slot connectors for connection with interface cards 124, each interface card 124 having at least one port 102. Physical data transport links 108 interconnect ports 102 of data network nodes.
Although conceptually the two data switching nodes 112X and 112Y provide similar data switching functionality, each equipment implementation is adapted for a different environment: the former data switching node 112X is more adapted to enterprise solutions as a private data network node, perhaps further adapted to be connected to carrier networks 100; while the latter data switching node 112Y is better adapted for high data throughput in the core of public data transport networks 100. Typically the former 112X implements a small number of data transport protocols while for the latter 112Y, data transport protocols are implemented on interface cards 124 and/or ports 102—providing for a flexible/configurable deployment thereof. Without limiting the invention thereto, each interface card 124 and port 102 represents a manageable entity.
In employing currently known relational database storage techniques, the “contains” relationship can be used to store highly hierarchical information such as deployment information regarding manageable entities of a managed communications network. Tracking deployment information for a managed communications network is performed by a network management system 240 maintaining a relational database 250. Network management systems 240 require effective storage and retrieval of a large amount of such highly hierarchical information.
The above mentioned approach when applied to the storage of highly hierarchical information in a relational database 250 teaches to use the primary key to store dependent database records in respective record tables and the use of the foreign key to uniquely identify the corresponding parent database record within another record table, database record which “contains” the dependent record.
Assuming database record uniqueness (see below), the multi-level hierarchical relationships between the information stored in the relational database 250 necessitates a considerable number of table joining operations to be performed as described above, and in particular a number of table joining operations which grows with the depth at which database records sought reside. It is apparent that the techniques currently employed in storing information in relational databases 250 do not scale well for highly hierarchical information. Inevitably the poor scalability has a negative impact on relational database 250 deployment costs, operational costs, and maintenance costs. Furthermore, the poor scalability results in slower relational database access times which are, to say the least, undesirable as the managed communications network is experiencing a failure and particularly undesirable during network failure recovery.
Problems exist in employing current information modeling techniques to store highly hierarchical information in the relational database 250 when duplicate modeled entity identification is unavoidable, for example, while each port on an interface card has a unique Media Access Control ADDRess (MAC ADDR) and the interface card has a unique serial number, each respectively associated therewith during manufacture, slots of a shelf 122 and shelves 122 themselves do not have inherently unique identifiers. In accordance with current information modeling techniques, shelf slots have non-uniquely global identifiable database records corresponding thereto as each shelf 122 has a first slot. Similarly; the shelves 122, while physical constructs, do not have inherently unique identifiers either, each equipment rack of data switching nodes 112Y having a first shelf 122. Considering shelf slot database records, this creates a problem in that the foreign key is not unique, as a relationship expressed as “the first shelf slot of the first shelf 122” is not sufficiently unique. Aside from the table joining overhead mentioned above, employing relational databases with improved deployment, operational, and maintenance efficiencies is sought for storing highly hierarchical information about entities which cannot be inherently uniquely identified. This necessitates the extension of presently known relational database techniques to provide unique primary keys for inherently non-uniquely identifiable database records.
Extending current modeling techniques for storing highly hierarchical information in relational databases leads to the use of multiple keys for each database record, wherein a key is used for each level of the hierarchy having a “contains” relationship with the database record resulting in adding the full containment specification to each database record as shown in FIG. 2. For example, each port database record in the port record table includes an of-card key, an installed-in-slot key, an of-shelf key, an of-node key, etc. While the storing of multiple keys in dependent database records seems to provide a solution to the table joining problem, an overhead is added in that in order to eliminate table joining operations, the database records in each record table need to be sorted based on each key every time database records are added and/or deleted. The search of record tables is therefore slow. Further, specifying the full containment specifications in every database record is an inefficient use of database storage resources, and violates a data redundancy relational database data integrity rule which forbids repeated storage of the same key.
Another problem typically encountered in employing relational databases to store hierarchical information relates to the above described fact that not every communications network node 106 has shelves 122 and ports 102 in data switching nodes 112X are not physically associated with any interface cards 124. The modeling of the information therefore necessitates the storage of intermediary database records for virtual managed entities to adapt the relational database 250 to the physical reality. However intermediary database records by virtue of having to be stored in corresponding record tables take just as much storage space.
In view of the fact that using relational databases to store highly hierarchical information in accordance with current techniques suffers in terms of storage inefficiencies, and slow access and maintenance; there is a need to address the above mentioned issues.